home *** CD-ROM | disk | FTP | other *** search
- var maxXmlListParser={};
- maxXmlListParser.error=null;
- maxXmlListParser.xmlDOM=null;
- maxXmlListParser.getXMLDOM=function(_1){
- var _2;
- try{
- if(window.ActiveXObject){
- _2=external.max_activex(max_security_id,"Microsoft.XMLDOM");
- _2.async=false;
- if(_1["namespace"]){
- _2.setProperty("SelectionNamespaces",_1["namespace"]);
- }
- }else{
- var ns=_1["namespace"]?_1["namespace"]:"";
- _2=document.implementation.createDocument(ns,"",null);
- }
- }
- catch(e){
- maxXmlListParser.error="Create XMLDOM Failed :: ("+e.number+") "+e.description;
- return null;
- }
- return _2;
- };
- maxXmlListParser.parseFile=function(_4,_5){
- return maxXmlListParser.parse(_4,_5,true);
- };
- maxXmlListParser.parse=function(_6,_7,_8){
- if(maxXmlListParser.load(_6,_7,_8)){
- return maxXmlListParser.parseItems(maxXmlListParser.xmlDOM,_7);
- }else{
- return null;
- }
- };
- maxXmlListParser.load=function(_9,_a,_b){
- if(!_b){
- _b=false;
- }
- if(!maxXmlListParser.xmlDOM){
- maxXmlListParser.xmlDOM=maxXmlListParser.getXMLDOM(_a);
- }
- if(!maxXmlListParser.xmlDOM){
- return false;
- }
- isOK=true;
- if(_b){
- maxXmlListParser.xmlDOM.async=false;
- maxXmlListParser.xmlDOM.load(_9);
- }else{
- if(window.ActiveXObject){
- maxXmlListParser.xmlDOM.loadXML(_9);
- }else{
- maxXmlListParser.xmlDOM=(new DOMParser()).parseFromString(_9,"text/xml");
- }
- }
- if(window.ActiveXObject){
- if(maxXmlListParser.xmlDOM.parseError.errorCode!=0){
- isOK=false;
- }
- }else{
- if(maxXmlListParser.xmlDOM.documentElement.tagName=="parsererror"){
- isOK=false;
- }
- }
- if(isOK){
- return true;
- }else{
- maxXmlListParser.error="Parse Error :: ("+maxXmlListParser.xmlDOM.parseError.errorCode+") "+maxXmlListParser.xmlDOM.parseError.reason;
- return false;
- }
- };
- maxXmlListParser.selectNodes=function(_c,_d,_e){
- if(window.ActiveXObject){
- if(_e){
- return _c.selectSingleNode(_d);
- }else{
- return _c.selectNodes(_d);
- }
- }else{
- var _f=new XPathEvaluator();
- var _10=_f.createNSResolver(_c.ownerDocument==null?_c.documentElement:_c.ownerDocument.documentElement);
- var _11=_f.evaluate(_d,_c,_10,0,null);
- var _12=[];
- var obj;
- while(obj=_11.iterateNext()){
- if(_e){
- return obj;
- }else{
- _12.push(obj);
- }
- }
- if(_12.length==0){
- return null;
- }else{
- return _12;
- }
- }
- };
- maxXmlListParser.parseItems=function(_14,_15){
- var _16=[];
- if(!maxXmlListParser.selectNodes(_14.documentElement,_15["validate"],true)){
- return null;
- }
- var _17=maxXmlListParser.selectNodes(_14.documentElement,_15["items"]);
- for(var i=0;i<_17.length;i++){
- var _19=maxXmlListParser.parseSingleItem(_17[i],_15);
- if(_19!={}){
- _16.push(_19);
- }
- }
- return _16;
- };
- maxXmlListParser.parseSingleItem=function(_1a,_1b){
- var _1c=_1b["itemTemplate"]?$clone(_1b["itemTemplate"]):{};
- for(var _1d in _1b["attributes"]){
- var _1e=maxXmlListParser.selectNodes(_1a,_1b["attributes"][_1d],true);
- if(_1e){
- _1c[_1d]=_1e.nodeValue;
- }
- }
- return _1c;
- };
- maxXmlListParser.updateItem=function(_1f){
- if(maxXmlListParser.load(_1f["xml"],{},_1f["isFile"])){
- maxXmlListParser.xmlDOM.setProperty("SelectionLanguage","XPath");
- var _20=maxXmlListParser.xmlDOM.selectSingleNode(_1f["xpath"]);
- if(_20){
- _20.nodeValue=_1f["value"];
- }
- if(_1f["save"]&&_1f["isFile"]){
- try{
- maxXmlListParser.xmlDOM.save(_1f["xml"]);
- }
- catch(e){
- alert(e.description);
- }
- }
- return true;
- }else{
- alert(maxXmlListParser.error);
- return false;
- }
- };
-
-